﻿using Nop.Admin.Models.Common;
using Nop.Core.Domain.Logistics;
using Nop.Core.Domain.Shipping;
using Nop.Web.Framework;
using Nop.Web.Framework.Mvc;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Telerik.Web.Mvc;

namespace Nop.Admin.Models.Logistics
{
    public class PackageListModel : BaseNopModel
    {
        public PackageListModel()
        {
            AvailableShippingStatuses = new List<SelectListItem>();
            AvailableDistricts = new List<SelectListItem>();
            AvailableZones = new List<SelectListItem>();
        }

        public IList<SelectListItem> AvailableDistricts { get; set; }
        public IList<SelectListItem> AvailableShippingStatuses { get; set; }
        public IList<SelectListItem> AvailableZones { get; set; }

        [NopResourceDisplayName("Admin.Orders.Shipments.TrackingNumber")]
        public string TrackingNumber { get; set; }

        [NopResourceDisplayName("Admin.Logistics.List.PickUpDistrict")]
        public int? PickUpDistrictId { get; set; }
        [NopResourceDisplayName("Admin.Logistics.Common.Fields.PZone")]
        public string PickUpZone { get; set; }

        [NopResourceDisplayName("Admin.Logistics.List.DeliveryDistrict")]
        public int? DeliveryDistrictId { get; set; }
        [NopResourceDisplayName("Admin.Logistics.Common.Fields.DZone")]
        public string DeliveryZone { get; set; }

        [NopResourceDisplayName("Admin.Logistics.Common.Fields.Status")]
        public ShippingStatus ShippingStatus { get; set; }

        [NopResourceDisplayName("Admin.Logistics.District")]
        public int DistrictId { get; set; }
        public string DistrictName { get; set; }

        [NopResourceDisplayName("Admin.Logistics.List.StartDate")]
        [UIHint("DateNullable")]
        public DateTime? StartDate { get; set; }

        [NopResourceDisplayName("Admin.Logistics.List.EndDate")]
        [UIHint("DateNullable")]
        public DateTime? EndDate { get; set; }

        [NopResourceDisplayName("Admin.Logistics.List.GoDirectlyToPkgNumber")]
        public int GoDirectlyToPkgNumber { get; set; }

        public GridModel<LogisticsPackageModel> Packages { get; set; }
    }
}